#ifndef __AI_H__
#define __AI_H__

#include "board.h"
#include "node.h"

#define MONOTONICITY_WEIGHT (-10)
#define SMOOTHNESS_WEIGHT (-1)
#define EMPTY_COUNT_WEIGHT (27)
#define MAXVALUE_WEIGHT (10)

int evaluate(grid * g);

int min_minimax(int depth, node * n);
int max_minimax(int depth, node * n);
int min_alphabeta(int depth, node * n);
int max_alphabeta(int depth, node * n);

int solve(node * n, int(*compare)(int, int));

#endif
